package com.study.d004;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

public class BasicWindowMain extends Application{
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage stage) throws Exception {
		//设置标题
		stage.setTitle("Hello World");

		//设置图标
		stage.getIcons().add(new Image("./icon/01.jpg"));

		//设置最小化
		//stage.setIconified(true);

		//设置宽高
		stage.setWidth(500);
		stage.setHeight(400);

		//设置全屏   设置全屏时需要设置Scene
//		stage.setFullScreen(true);
//		stage.setScene(new Scene(new Group()));

		stage.show();

		//获取宽高,注意获取宽高要在show()方法之后，否则可能获取不到，如果前面没有设置的话
		System.out.println("宽："+stage.getWidth());
		System.out.println("高："+stage.getHeight());

		//设置窗口不可缩放
		stage.setResizable(true);

		//设置透明度 值0-1，  0为透明， 1 为不透明
		stage.setOpacity(1);

		//设置置顶，即在所有窗口的最上层
		stage.setAlwaysOnTop(true);

		//监听窗口缩放后的宽和高
		stage.widthProperty().addListener(new ChangeListener<Number>() {
			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				System.out.println("改变后的宽度为:" + newValue.doubleValue());
			}
		});

		stage.heightProperty().addListener(new ChangeListener<Number>() {

			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				System.out.println("改变后的高度为:" + newValue.doubleValue());
			}
		});

		//监听窗口移动时X，Y的坐标
		stage.xProperty().addListener(new ChangeListener<Number>() {
			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				System.out.println("X轴的坐位为:" + newValue.doubleValue());
			}
		});

		stage.yProperty().addListener(new ChangeListener<Number>() {
			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				System.out.println("Y轴的坐位为:" + newValue.doubleValue());
			}
		});
	}
}
